package org.zch.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.zch.entity.po.UserInfoPO;
import org.zch.entity.vo.UserInfoVO;

import java.util.List;

/**
 * 用户信息
 *
 * @author 刘新
 */
@Mapper
public interface UserDAO extends BaseMapper<UserInfoPO> {

    /**
     * 根据id查询用户信息
     *
     * @param code
     * @return
     */
    UserInfoPO getUserById(@Param("code") String code);

    /**
     * 根据mac查询用户id
     *
     * @param mac
     * @return
     */
    UserInfoPO getUserByMac(@Param("mac") String mac);

    /**
     * 查询所有
     *
     * @return
     */
    List<UserInfoPO> findAll();

    /**
     * 根据唠币排名
     */
    List<UserInfoPO> getUserRanking();

    /**
     * 通用更新方法
     *
     * @param userInfoPO
     * @return
     */
    Integer update(UserInfoPO userInfoPO);


    /**
     * 变更金额
     *
     * @param userCode     用户编码
     * @param changeValues 变化数值
     * @return
     */
    Integer updateLaoMoney(@Param("userCode") String userCode, @Param("changeValues") Integer changeValues);

    /**
     * 根据用户code，批量查询用户信息
     *
     * @param list
     * @return
     */
    List<UserInfoVO> getByCodes(@Param("list") List<String> list);
}
